我將會透過這30天的iThome鐵人賽,手把手帶領大家認試OpenCV的各種功能與應用。前半段會著重於OpenCV的功能介紹,會帶一些有趣的小例子,程式碼皆會附在文章中;後半段會帶實戰應用,會完成車牌辨識與眼球追蹤專案。
這次的教學皆以Python為主要的程式語言,因為OpenCV目前主流的語言還是以Python為主,且Python比較容易上手,Python的基礎語法教學就不在這系列提及了,此主題主要著重於OpenCV的應用。希望各位IT朋友能在讀完文章後有所收穫!
OpenCV的全名是Open Source Computer Vision Library(開源計算機視覺函式庫),由 Intel 公司在1999年首次推出,並且在2000年正式發布。OpenCV 提供了數百個用於影像處理和電腦視覺的演算法,是目前發展最完整的電腦視覺開源資源。
OpenCV 支援多種程式語言,包括 C++、Python 和 Java,也可以在多種作業系統上運行,如 Windows、Linux 和 macOS。此外,它還支援各種硬體加速,如 GPU 和 FPGA,以提高計算效率。
以下是針對常見操作系統和 Python 程式語言的安裝步驟。
小提醒:
確保已先安裝Python和pip
在命令行(cmd)或終端(terminal)輸入以下指令確認是否安裝Python以及pip
python --version
pip --version
跳出以下訊息代表已安裝Python以及pip
在命令行(cmd)或終端(terminal)下命令來安裝OpenCV
pip install opencv-python
此時需等待一下,安裝好後開啟一個新的.py檔並輸入已下指令。若沒有跳出錯誤訊息且成功印出OpenCV的版本代表安裝成功。
import cv2
print(cv2.__version__)
將以lenna.jpg為範例。
注意:
需先將欲讀取的圖片與此python程式放到同一路徑底下。
import cv2
# 讀取圖片
image = cv2.imread('lenna.jpg')
# 顯示圖片
cv2.imshow('lenna', image)
# 等待任意按鍵按下,然後關閉顯示窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
此時會跳出以下視窗,代表成功讀取第一張圖片了!
[ ] 內為optional,可以不填
cv2.imread(文件路徑與名稱[, 讀取方式])
數字 | 模式 | 說明 |
---|---|---|
1 | cv2.IMREAD_UNCHANGED | 原本的圖像( 如果圖像有 alpha 通道則會包含 )。 |
2 | cv2.IMREAD_GRAYSCALE | 灰階圖像。 |
3 | cv2.IMREAD_COLOR | BGR 彩色圖像,預設。 |
4 | cv2.IMREAD_ANYDEPTH | 具有對應的深度時返回 16/32 位元圖像,否則將其轉換為 8 位元圖像。 |
5 | cv2.IMREAD_ANYCOLOR | 以任何可能的顏色格式讀取圖像。 |
6 | cv2.IMREAD_LOAD_GDAL | 使用 gdal 驅動程式加載圖像。 |
7 | cv2.IMREAD_REDUCED_GRAYSCALE_2 | 灰階圖像,圖像尺寸減小 1/2。 |
8 | cv2.IMREAD_REDUCED_COLOR_2 | BGR 彩色圖像,圖像尺寸減小 1/2。 |
9 | cv2.IMREAD_REDUCED_GRAYSCALE_4 | 灰階圖像,圖像尺寸縮小 1/4。 |
10 | cv2.IMREAD_REDUCED_COLOR_4 | BGR 彩色圖像,圖像尺寸減小 1/4。 |
11 | cv2.IMREAD_REDUCED_GRAYSCALE_8 | 灰階圖像,圖像尺寸縮小 1/8。 |
12 | cv2.IMREAD_REDUCED_COLOR_8 | BGR 彩色圖像,圖像尺寸減小 1/8。 |
13 | cv2.IMREAD_IGNORE_ORIENTATION | 不要根據 EXIF 資訊的方向標誌旋轉圖像。 |
cv2.imshow(視窗名稱, 圖片)
lenna
。cv2.waitKey(0)
0
表示無限等待。cv2.destroyAllWindows
cv2.imshow()
創建的視窗。今天的分享就到這邊,明天會解釋色彩模式、numpy操作與切割圖片的方法。